PHP的相關基礎語法,
介紹到這邊已經是倒數第二篇(先感謝願意進來看我廢話的各位),
在Day10會是基礎語法的最後一篇,
之後就會回到主題寫一個SOCKET聊天室.
今天來談談亂數,
基礎的php亂數函數:rand(最小值,最大值)
echo rand(0,100);
#會顯示0~100的隨機亂數
除了數字的亂數,也會想要用到有文字的亂數,
要作到這些要加上其他函數來輔助,
例如:str_shuffle(打亂字串)、md5(加密)、
substr(切割字串)等等,以下列幾個範例供參考.
#$str_len為所需字串長度
#原理是先把$str用str_shuffle()函數將字串打亂,再取得需要的長度字串,達到類似亂數的目的
function random_string($str_len){
$str = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
$str_temp = str_shuffle($str);
return substr($str_temp, 0, $str_len);
}
#$characters[n-1],可以取得$characters字串裡第n個數
#原理是利用迴圈+亂數,每次從$characters取得一個隨機的字組成一個字串
function random_string($str_len) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $str_len; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
再來介紹可以生成ID的函數,
uniqid() 函数是基於以微秒計的當前時間,
生成一個唯一的ID的函數.
PHP常用的迴圈有:
while、do while、for、foreach等.
先介紹while
/*開始時變數為1符合條件<=5,
而迴圈每執行一次,$num的內容會加1,當迴圈執行完第5次時($num=6),
就不符合執行條件<=5了
列印結果為:12345
*/
<?php
$num=1;
while($num<=5){
echo $num;
$num++; //$num=$num+1;的另一種寫法
}
?>
再來介紹do while,do while與while很像,
唯一不同的是do while是在每一次執行完迴圈時才去判斷條件是否成立,
所以就算條件不成立,迴圈也會被執行一次.
<?php
#列印結果為:12345
$num=0;
do{
$num++;
echo $num;
}while($num<5);
?>
再來是foreach,foreach 不用寫條件判斷式就可以直接讀取陣列,結構有下列兩種
foreach ( 陣列 as $value ){...}
foreach ( 陣列 as $key => $value ){...}
第一個寫法foreach 會直接將陣列值存放到 $value 中,且將指向陣列的指針向前一歩,讓下次循環的時候能夠執行下一個陣列值,第二個差別在於多增加了把 array key 同時存放於 $key 之中,以方便後續的調用.
<?php
/*輸出結果為
鍋貼水餃漢堡
0鍋貼1水餃2漢堡
*/
$Arr=array( "鍋貼" , "水餃" , "漢堡" );
foreach ($Arr as $value ){
echo $value;
}
echo '<br>';
foreach ($Arr as $key => $value) {
echo $key.$value;//key從0開始
}
?>
最後是for,他有三個參數分別是開始變數、執行條件、變動條件,
要注意執行條件和變動條件若沒設好,有可能會出現無窮迴圈.
<?php
#顯示結果為12345
for($num=1;$num<=5;$num++){
echo $num;
}
?>
另外還有常用的迴圈函數continue(迴圈繼續)和break(迴圈跳出)可以使用.
這個篇章好像有點長阿XD,
有點好奇真的有人會點進來嗎QQ?
下一個篇章就是基礎篇的最後一篇,敬請收看唷!!